package com.hejing.Collection子接口List;

import org.junit.Test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * ClassName: ListTest
 * Package: com.hejing.Collection子接口List
 * Description:
 *
 * @Author: HeJing
 * @Create: 2023-05-11 20:35
 * @Version: 1.0
 */
public class ListTest {
    @Test
    public void test01(){

        List list = new ArrayList();

        // 1、add(Object obj)
        list.add("AA");
        list.add("BB");
        list.add("CC");
        list.add(123);
        list.add(true);
        list.add(new Person("luffy", 21));


        // 增强for循环遍历
        for(Object obj: list) {
            System.out.print(obj + " ");
        }
        System.out.println();

        // 2、add(int index, Object obj)
        list.add(3, "DD");
        System.out.println(list);

        // 3、addAll(int index, Collection coll)
        List list01 = Arrays.asList(0, 1, 2);
        list.addAll(1, list01);
        System.out.println(list);

        // 4、Object remove(int index)
        list.remove(2);  // 如果是int数字，默认根据索引删除而非元素
        System.out.println(list);

        // 5、Object get(int index)
        System.out.println(list.get(2)); // 2

        // 6、删除元素而非索引
        list.remove(Integer.valueOf(0));
        System.out.println(list);
    }

    /**
     * 遍历:
     */
    @Test
    public void test02(){
        List list = new ArrayList();

        // 1、add(Object obj)
        list.add("AA");
        list.add("BB");
        list.add("CC");
        list.add(123);
        list.add(true);
        list.add(new Person("luffy", 21));

        // 遍历方式1: 使用迭代器遍历:
//        Iterator iterator = list.iterator();
//        while(iterator.hasNext()) {
//            System.out.println(iterator.next());
//        }


        // 遍历方式2: 增强for循环:
//        for(Object obj: list) {
//            System.out.println(obj);
//        }

        // 遍历方式3: 普通for循环
        for(int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }


    }
}
























